The invention relates to methods and apparatus for interactive computer graphics.
Many forms of computer graphics systems provide various functionality: painting, drawing, three dimensional rendering, computer-assisted design ("CAD"), among others. A distinction which has developed with the advent of graphical user interfaces ("GUI") in graphics systems is the form of input by a user. Some systems accept input as mathematical constructs, where a user (possibly another computer system) provides mathematical formulas or numerical points to cause the system to display a shape to match the input data. Some systems accept input as drawing motions, where a user manipulates an input device such as a mouse or tablet to cause the system to form an image matching the user's motions.
In a group of applications sometimes referred to as "drawing" applications, a user manipulates a graphical object to determine location, size, and other properties. The graphical object is then typically stored as parameters for an output primitive which operates according to one or more mathematical formulas. In a group of applications sometimes referred to as "painting" or "freehand" applications, a user moves a graphical pointer across areas of the computer display and the computer system stores the motions as a series of points. This form of input is generally more convenient and consistent with modern GUI standards. However, painting applications typically lack precision and are limited by display resolution capabilities. Drawing applications are typically limited in the complexity of shapes which may be created, often to lines and simple polygons. Some computer software applications incorporate both painting and drawing features, such as Adobe Illustrator.
Often a user wants to form a curve in graphics applications. One mathematical representation of a curve is a function to calculate a sequence of Bezier points. The definition of the function is complex and not easily supplied by a user. However, the resulting smooth image is desirable. Conventional graphics applications typically include tools for assisting a user in entering a Bezier curve. These tools typically include multiple elements which are adjusted by the user to approximate a desired shape. Freehand painting is generally a simpler input method. However, a smooth curve rarely results from freehand painting as controlled by a user. Similarly, a user may want to form a smooth curve from a digitized curve, such as one supplied from an optical character recognition device.